In a variety of document presentation systems such as printing systems, it is common to rasterize data to generate a bitmap representation of each sheetside image of the document by processing a sequence of data objects. The data objects are typically initially defined in a page description language or other suitable encoding and at some point prior to writing to a bitmap are represented as regions of rectangles of pixels. Typically, the sheetside image is then generated into a bitmap memory as a two dimensional matrix of pixels representing the intended document sheetside image, and subsequently compressed.
During sheetside processing, a toner limit process may be implemented in which maximum values of toner (or ink) is monitored and, if necessary, reduced. Such monitoring and reduction involves many calculations. For example, over 134 million calculations of an algorithm may be required for CMYK (e.g., 4 planes) data included in 1,200 dpi bitmaps of an 8.5 by 11 inch page.
If the limit of toner or ink is exceeded (based on the current limit due to object type), the values of the cyan, magenta, and yellow planes must be proportionately reduced to prevent the appropriate limit from being exceeded. This is a large amount of calculation that reads and writes large amounts of memory (typically in excess of 0.5 GB per letter side). As print speeds increase, the amount of time required per page becomes prohibitive.
Accordingly, an efficient toner limit processing mechanism is desired.